#ifndef IFUNCPARAM_H
#define IFUNCPARAM_H

#include "IFunction.h"

// Uma função desta interface utiliza o parâmetro param quando fizer a chamada para funFunction. O parâmetro não pode ser 0.
class IFuncParam : public IFunction
{
    private:
        int(*ponteiro_funcao)(int,int);
        int param;

    public:
        // Construtor:
        IFuncParam(int (*f)(int, int), int param);

        // Retorna o parâmetro desta função
        int getParam();

        // Atualiza o novo parâmetro desta função. Se p == 0, a variável 'param' deve ser 1.
        void setParam(int p);

        // Executar a função:
        int runFunc(int x);
};

#endif // IFUNCPARAM_H
